﻿''' <summary>
''' Clase del componente "Utilitarios" con funciones de conversión de tipos de datos
''' </summary>
''' <remarks></remarks>
Public Class Convert

    ''' <summary>
    ''' Función para conversión de tipos de datos a Int16
    ''' </summary>
    ''' <param name="value">Valor de tipo Object que debe ser convertido al tipo de dato de la función</param>
    ''' <returns>Valor convertido al tipo de dato de la función</returns>
    ''' <remarks></remarks>
    Public Shared Function ToInt16(value As Object) As Int16
        If IsDBNull(value) Then
            value = 0
        ElseIf IsNothing(value) Then
            value = 0
        ElseIf value.ToString = "" Then
            value = 0
        End If

        Return value
    End Function

    ''' <summary>
    ''' Función para conversión de tipos de datos a Int32
    ''' </summary>
    ''' <param name="value">Valor de tipo Object que debe ser convertido al tipo de dato de la función</param>
    ''' <returns>Valor convertido al tipo de dato de la función</returns>
    ''' <remarks></remarks>
    Public Shared Function ToInt32(value As Object) As Int32
        If IsDBNull(value) Then
            value = 0
        End If

        Return value
    End Function

    ''' <summary>
    ''' Función para conversión de tipos de datos a Int64
    ''' </summary>
    ''' <param name="value">Valor de tipo Object que debe ser convertido al tipo de dato de la función</param>
    ''' <returns>Valor convertido al tipo de dato de la función</returns>
    ''' <remarks></remarks>
    Public Shared Function ToInt64(value As Object) As Int64
        If IsDBNull(value) Then
            value = 0
        End If

        Return value
    End Function

    ''' <summary>
    ''' Función para conversión de tipos de datos a String
    ''' </summary>
    ''' <param name="value">Valor de tipo Object que debe ser convertido al tipo de dato de la función</param>
    ''' <returns>Valor convertido al tipo de dato de la función</returns>
    ''' <remarks></remarks>
    Public Shared Function ToStr(value As Object) As String
        If IsDBNull(value) Then
            value = ""
        End If

        Return value
    End Function

    ''' <summary>
    ''' Función para conversión de tipos de datos a Boolean
    ''' </summary>
    ''' <param name="value">Valor de tipo Object que debe ser convertido al tipo de dato de la función</param>
    ''' <returns>Valor convertido al tipo de dato de la función</returns>
    ''' <remarks></remarks>
    Public Shared Function ToBool(value As Object) As Boolean
        If IsDBNull(value) Then
            value = False
        End If

        Return value
    End Function

    ''' <summary>
    ''' Función para conversión de tipos de datos a Date
    ''' </summary>
    ''' <param name="value">Valor de tipo Object que debe ser convertido al tipo de dato de la función</param>
    ''' <returns>Valor convertido al tipo de dato de la función</returns>
    ''' <remarks></remarks>
    Public Shared Function ToDate(value As Object) As Date
        If IsDBNull(value) Then
            value = Date.MinValue
        End If

        Return value
    End Function

    ''' <summary>
    ''' Función para conversión de tipos de datos a DateTime
    ''' </summary>
    ''' <param name="value">Valor de tipo Object que debe ser convertido al tipo de dato de la función</param>
    ''' <returns>Valor convertido al tipo de dato de la función</returns>
    ''' <remarks></remarks>
    Public Shared Function ToDateTime(value As Object) As DateTime
        If IsDBNull(value) Then
            value = DateTime.MinValue
        End If

        Return value
    End Function

End Class
